/*
 * Constantes.java Created on Oct 20, 2006 by M.C.Boulahiya
 */

package hall;

import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * @author M.C.Boulahiya
 *
 * Classes contenant toutes les constantes et les fonctions utilitaires.
 */
public class Constantes {
  public static int start;
  public static float longueur = 2.0f;
	
	
  /**
   * Lit une ligne de texte, avec un maximum de 200 caracteres.
   *
   * @param infile Le fichier en entree.
   * @return Une ligne de texte provenant de infile.
   * @exception IOException Si la fin du fichier a ete atteinte, ou une autre 
   * 					erreur d'E/S generique.
   */
  public static String myReadLine(RandomAccessFile infile) throws IOException {
    char ch;
    char[] line = new char[200];
    int i = 0;

    //To be sure that we are reading a valid character
    ch = (char)infile.readByte();
    while ((ch == '\r') || (ch == '\n')){
      ch = (char)infile.readByte();
    }

    do {
      line[i] = ch; i++;
      ch = (char)infile.readByte();
    } while ((ch != '\r') && (ch != '\n'));
    //End of line reached

    return new String(line);
  } // Fin de myReadLine(RandomAccessFile)
  
  
	/**
	 * Retourne le premier entier contenu dans cette chaine de caracteres.
	 * 
	 * @param line Chaine de caracteres en entree.
	 * @return L'entier recherche.
	 */
	public static int extraireInt(String line) {
		String sres = new String("");
		
		while (!isDigit(line.charAt(start)))
			start++;
		
		while (isDigit(line.charAt(start))) {
			sres += line.charAt(start);
			
			if ((start + 1) == line.length())
        break;
      else
        start++;
		}
		
		if ((start + 1) != line.length())
      start++;
		
		if (sres.length() == 0)
			return 0;
		return Integer.parseInt(sres);
	} // Fin de extraireInt(String, int)  
	
	
  /**
   * Verifie qu'un caractere est un chiffre.
   *
   * @param c Le caractere a tester.
   * @return True si le caractere est entre '0' et '9' ou si c'est '-'.
   */
  private static boolean isDigit(char c) {
    if ((c == '0') || (c == '1') || (c == '2') || (c == '3') || (c == '4') || 
    		(c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9') ||
    		(c == '-'))
      return true;
    else
      return false;
  } // Fin de isDigit(char)
  
  
  /**
   * Retourne le premier entier contenu dans cette chaine de caracteres.
	 *  
	 * @param line Chaine de caracteres en entree.
   * @return Une Chaine de caracteres isolee.
   */
  public static String extraireString(String line) {
  	String sres = new String("");
  	
  	while (line.charAt(start) != '\t') {
  			
  		sres += line.charAt(start);
  		
  		if ((start + 1) == line.length())
        break;
      else
      	start++;
  	}
  	
  	if ((start + 1) != line.length())
      start++;
  	
  	return sres;
  } // Fin de extraireString(String)
  
} // Fin de la classe Constantes

// Fin du fichier Constantes.java